package com.jic.veteran.service;

import com.jic.veteran.dto.ProjectDto;
import com.jic.veteran.model.*;

import java.util.List;

/**
 * 后台用户缓存操作Service
 * Created by macro on 2020/3/13.
 */
public interface UmsAdminCacheService {
    /**
     * 删除后台用户缓存
     */
    void delAdmin(Long adminId);

    /**
     * 删除后台用户资源列表缓存
     */
    void delResourceList(Long adminId);

    /**
     * 当角色相关资源信息改变时删除相关后台用户缓存
     */
    void delResourceListByRole(Long roleId);

    /**
     * 当角色相关资源信息改变时删除相关后台用户缓存
     */
    void delResourceListByRoleIds(List<Long> roleIds);

    /**
     * 当资源信息改变时，删除资源项目后台用户缓存
     */
    void delResourceListByResource(Long resourceId);

    /**
     * 获取缓存后台用户信息
     */
    UmsAdmin getAdmin(String username);

    /**
     * 设置缓存后台用户信息
     */
    void setAdmin(UmsAdmin admin);

    /**
     * 获取缓存后台用户资源列表
     */
    List<UmsResource> getResourceList(Long adminId);

    /**
     * 设置缓存后台用户资源列表
     */
    void setResourceList(Long adminId, List<UmsResource> resourceList);

    /**
     * 删除项目后台缓存
     */
    void delProject(ProjectBasic projectBasic);
    /**
     * 设置项目后台缓存
     */
    void setProject(ProjectDto projectDto);
    /**
     * 设置缓存项目信息列表
     */
    void setProjectDtoList(ProjectBasic projectBasic);
    /**
     * 删除缓存项目信息列表
     */
    void removeProjectFromList(ProjectBasic projectBasic);

    void lPushLimit(ProjectDonationDetail projectDonationDetail);

    PayInfo getPayInfo();

    void setPayInfo(PayInfo payInfo);

    /**
     * 设置文章信息列表
     */
    void setCmsArticleInfoList(CmsArticleInfo cmsArticleInfo);

    /**
     * 删除缓存项目信息列表
     */
    void removeCmsArticleInfoFromList(CmsArticleInfo cmsArticleInfo);

    /**
     * 设置大屏展示开始时间
     */
    void setBigScreenTime(String bigScreenTime);

    /**
     * 移除大屏展示开始时间
     */
    void removeBigScreenTime();

}
